package com.swu.pad.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.URLEncoder;

import javax.servlet.http.HttpServletResponse;

public class FileDownloadUtil {

	/**
	 * 提供一个文件下载的方法
	 * @param response
	 * @param path
	 * @param fileName
	 * @return
	 * @throws Exception
	 */
	public static String download(HttpServletResponse response, File file) throws Exception {

		// 如果文件不存在
		if (!file.exists()) {
			System.out.println("文件不存在");
			return "文件不存在";
		}
		// 处理文件名
		String realname = file.getName();
		// 设置响应头，控制浏览器下载该文件
		response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
		// 读取要下载的文件，保存到文件输入流
		FileInputStream in = new FileInputStream(file);
		// 创建输出流
		OutputStream out = response.getOutputStream();
		// 创建缓冲区
		byte buffer[] = new byte[1024];
		int len = 0;
		// 循环将输入流中的内容读取到缓冲区当中
		while ((len = in.read(buffer)) > 0) {
			// 输出缓冲区的内容到浏览器，实现文件下载
			out.write(buffer, 0, len);
		}
		// 关闭文件输入流
		in.close();
		// 关闭输出流
		out.close();
		return "success";
	}

}